<template>
    <div class="header">
        <div class="nav-topbar">
            <div class="container">
                <div class="topbar-user">
                    <a href="javascript:;" v-if="username">{{username}}</a>
                    <a href="javascript:;" v-if="!username" @click="login">登录</a>
                    <a href="javascript:;" v-if="username" @click="logout
                    ">退出</a>
                    <a href="/#/register" v-if="!username">注册</a>
                    <a href="/#/order/list" v-if="username">我的订单</a>
                </div>
                <div class="topbar-menu">
                    <a href="javascript:;" class="my-cart" @click="goToCart"><span class="icon-cart"></span>购物车({{cartCount}})</a>
                    <a href="/#/user/userinfo">用户中心</a>
                    <a href="" class="mr">联系客服</a>
                </div>
            </div>
        </div>
        <div class="nav-header">
            <div class="container">
                <div class="header-logo">
                    <a href="/#/index"></a>
                </div>
                <div class="header-menu">
                    <div class="item-menu">
                        <span>首页</span>
                        <div class="children"></div>
                    </div>
                    <div class="item-menu">
                        <span>书库</span>
                        <div class="children">
                            <ul>
                                <li class="product" v-for="(item,index) in phoneList" :key="index">
                                    <a v-bind:href="'/#/product/'+item.id" target="_blank">
                                        <div class="pro-img">
                                            <img v-lazy="item.mainImage" :alt="item.subtitle">
                                        </div>
                                        <div class="pro-name">{{item.name}}</div>
                                        <div class="pro-price">{{item.price | currency}}</div>
                                    </a>
                                </li>
                            </ul>
                        </div>
                    </div>
                    <div class="item-menu">
                        <span>技能</span>
                        <div class="children"></div>
                    </div>
                    <div class="item-menu">
                        <span>论坛</span>
                        <div class="children"></div>
                    </div>
                </div>
                <div class="header-search">
                    <div class="wrapper">
                        <input type="text" name="keyword">
                        <a href="javascript:;"></a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
import {mapState} from 'vuex'
export default {
    name:'nav-header',
    data(){
        return {
            // username:this.$store.state.username,
            phoneList:[]
        }
    },
    computed:{
        // username(){
        //     return this.$store.state.username;
        // },
        // cartCount(){
        //     return this.$store.state.cartCount;
        // }
        ...mapState(['username','cartCount'])
    },
    mounted(){
        this.getProductList();
        let params = this.$route.params;
        if(params && params.from == 'login'){
            this.getCartCount();
        }
    },
    methods:{
        login(){
            this.$router.push('/login');
        },
        getProductList(){
            this.axios.get('/products',{
                params:{
                    categoryId:'100012',
                    // rootCatId:'100012'
                    pageSize:6
                }
            }).then((res)=>{
                if(res.list.length>=6){
                    this.phoneList = res.list.slice(0,6);
                }
            })
        },
        getCartCount(){
            this.axios.get('/carts/products/sum').then((res=0)=>{
                // to-do 保存到vuex里面
                this.$store.dispatch('saveCartCount',res);
            })
        },
        logout(){
            this.axios.post('/user/logout').then(()=>{
                this.$message.success('退出成功');
                this.$cookie.set('userId','',{expires:'-1'});
                this.$store.dispatch('saveUserName','');
                this.$store.dispatch('saveCartCount','0');
            })
        },
        goToCart(){
            this.$router.push('/cart');
        }
    },
    filters:{
        currency(val){
            if(!val)return '0.00';
            return '￥' + val.toFixed(2) + '元';
        }
    }
}
</script>

<style lang="scss">
@import './../assets/scss/base.scss';
@import './../assets/scss/mixin.scss';
@import './../assets/scss/config.scss';
    body{
        align-items: baseline;
    }
    .header{
        .nav-topbar{
            height: 39px;
            line-height: 39px;
            background-color: #242A30;
            color: #ffffff;
            .container{
                height: 39px;
                @include flex();
                a{
                    display: inline-block;
                    color: #ffffff;
                    margin-right: 17px;
                }
                .my-cart{
                    width: 110px;
                    background-color: #ff6600;
                    text-align: center;
                    .icon-cart{
                        @include bgImg(16px,12px,'/images/icon/icon-cart-checked.png');
                        margin-right: 4px;                 
                    }
                }
                .mr{
                    margin-right: 0;
                }
            }
        }
        .nav-header{
            .container{
                position: relative;
                height: 78px;
                @include flex();
                .header-logo{
                    display: inline-block;
                    width: 60px;
                    height: 40px;
                    background-color: #2d81bd;
                    a{
                        display: inline-block;
                        width: 120px;
                        height: 40px;
                        &:before{
                            content: ' ';
                            @include bgImg(60px,40px,'/images/zhizhi/logo-white.png');
                            transition: margin .2s;
                        }
                        &:after{
                            content: ' ';
                            @include bgImg(60px,40px,'/images/zhizhi/home-white.png');
                        }
                        &:hover:before{
                            margin-left: -60px;
                            transition: margin .2s;
                        }
                    }
                }
                .header-menu{
                    display: inline-block;
                    padding-left: 200px;
                    width: 643px;
                    .item-menu{
                        display: inline-block;
                        color: #333333;
                        font-weight: bold;
                        font-size: 16px;
                        line-height: 78px;
                        margin-right: 20px;
                        span{
                            cursor: pointer;
                        }
                        &:hover{
                            color: $colorA;
                            .children{
                                height: 220px;
                                opacity: 1;
                            }
                        }
                        .children{
                            position: absolute;
                            top: 78px;
                            left: 0;
                            width: 1226px;
                            height: 0;
                            opacity: 0;
                            overflow: hidden;
                            border-top: 1px solid $colorA;
                            box-shadow: 0px 7px 6px 0px rgba(0,0,0,0.11);
                            z-index: 10;
                            transition: all .5s;
                            background-color: #ffffff;
                            .product{
                                position: relative;
                                float: left;
                                width: 110px;
                                height: 220px;
                                font-size: 12px;
                                line-height: 12px;
                                padding: 0 25px;
                                text-align: center;
                                a{
                                    display: inline-block;
                                }
                                img{
                                    height: 110px;
                                    width: auto;
                                    margin-top: 26px;
                                }
                                .pro-img{
                                    height: 137px;
                                }
                                .pro-name{
                                    font-weight: bold;
                                    margin-top: 19px;
                                    margin-bottom: 8px;
                                    color: $colorB;
                                }
                                .pro-price{
                                    color: $colorA;
                                }
                                &:before{
                                    content: '';
                                    position: absolute;
                                    top: 28px;
                                    right: 0;
                                    border-left: 1px solid $colorF;
                                    height: 100px;
                                    width: 1px;
                                }
                                &:last-child:before{
                                    display: none;
                                }
                            }
                        }
                    }
                }
                .header-search{
                    width: 320px;
                    .wrapper{
                        height: 50px;
                        border: 1px solid #e0e0e0;
                        display: flex;
                        align-items: center;
                        input{
                            border: none;
                            box-sizing: border-box;
                            border-right: 1px solid #e0e0e0;
                            width: 264px;
                            height: 50px;
                            padding-left: 14px;
                        }
                        a{
                            @include bgImg(18px,18px,'/images/icon/icon-search.png'); 
                            margin-left: 17px;
                        }
                    }
                }
            }
        }
    }
</style>